882bd5
@@ -45,13 +45,12 @@
import java.util.concurrent.Future;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.TimeoutException;
 import java.util.function.Predicate;
-
 import org.apache.commons.io.IOUtils;
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.hbase.ClusterMetrics.Option;
 import org.apache.hadoop.hbase.HBaseConfiguration;
 import org.apache.hadoop.hbase.HConstants;
-import org.apache.hadoop.hbase.MetaTableAccessor;
+import org.apache.hadoop.hbase.HRegionLocation;
 import org.apache.hadoop.hbase.ServerName;
 import org.apache.hadoop.hbase.client.Admin;
 import org.apache.hadoop.hbase.client.Connection;
@@ -667,18 +666,15 @@
public class RegionMover extends AbstractHBaseTool implements Closeable {
    * @return server removed from list of Region Servers
    */
   private ServerName stripServer(List<ServerName> regionServers, String hostname, int port) {
-    ServerName server = null;
-    String portString = Integer.toString(port);
-    Iterator<ServerName> i = regionServers.iterator();
-    while (i.hasNext()) {
-      server = i.next();
-      String[] splitServer = server.getServerName().split(ServerName.SERVERNAME_SEPARATOR);
-      if (splitServer[0].equalsIgnoreCase(hostname) && splitServer[1].equals(portString)) {
-        i.remove();
+    for (Iterator<ServerName> iter = regionServers.iterator(); iter.hasNext();) {
+      ServerName server = iter.next();
+      if (server.getAddress().getHostname().equalsIgnoreCase(hostname) &&
+        server.getAddress().getPort() == port) {
+        iter.remove();
         return server;
       }
     }
-    return server;
+    return null;
   }
 
   /**
@@ -719,7 +715,13 @@
public class RegionMover extends AbstractHBaseTool implements Closeable {
     if (!admin.isTableEnabled(region.getTable())) {
       return null;
     }
-    return MetaTableAccessor.getRegionLocation(conn, region).getServerName();
+    HRegionLocation loc =
+      conn.getRegionLocator(region.getTable()).getRegionLocation(region.getStartKey(), true);
+    if (loc != null) {
+      return loc.getServerName();
+    } else {
+      return null;
+    }
   }
 
   @Override
@@ -782,6 +784,8 @@
public class RegionMover extends AbstractHBaseTool implements Closeable {
   }
 
   public static void main(String[] args) {
-    new RegionMover().doStaticMain(args);
+    try (RegionMover mover = new RegionMover()) {
+      mover.doStaticMain(args);
+    }
   }
 }
\ No newline at end of file
